第14章 テスト駆動開発
14.1 テストを先に書く
テスト駆動開発(TDD: Test Driven Development)はソフトウェア開発のおける一つの技法
レッド・グリーン・リファクタリングを繰り返しながら開発をすすめる
レッド:最初の考えられる失敗のユニットテストを書いていく
グリーン:失敗するユニットテストを成功するようなコードをかいていく
リファクタリング:実装をみなおし、リファクタリングを行う
ユーザーストーリーの受け入れ条件を満たすまでコードをかいていく
TDDは以下のルールで行う
1. 失敗するテストを一つかくまでは、新しいコードを一切かかない
先に失敗するテストを書くことで、本当に必要なコードはなんなのかを見極めるタイミングになる
2. 「危なかっしい所」をすべてテストする
全てをテストすることはできないので、壊れやすい箇所や特殊な挙動するところに対してテストを記載する
14.2 テストを使って複雑さに立ち向かう
TDDの手順を踏むことで、コードの複雑さにたちむかうきっかけになる
目の前のテストを成功することに注力するため、課題を小さく対処してでき、同時に考える必要性がなくなる。また、最善の解決策を導くアプローチにもなる。
他にも以下のメリットがある
システムの総所有コスト(TCO)の削減
少ないコード
考えるべきことに気持ちをむけさせる
最初からコードの質を作り込める
複雑さの低減
シンプルな設計